<template>
	<view :style="{'background-color':pageBg}"  style="float: left;width: 100%;min-height: 100%;">
		<u-navbar is-back="true" :border-bottom="false"  title-color="" back-icon-color="" title="提醒">
		</u-navbar>
		<view class="container css-theme" :class="[cueTheme]">
			<view class="top_box">
				<view class="container_box">
					<view class="container_box_left">
						<view style="width: 400rpx;">每日推送</view>
						<view class="flex-item image_v"><tn-switch v-model="remind_time_day" 
								activeColor="#18B998"></tn-switch></view>
					</view>
				</view>
				<picker @change="bindPickerChangeTime" mode="time" :value="pickerValue" v-if="remind_time_day">
					<view class="container_box">
						<view class="container_box_left">
							<view style="width: 400rpx;">提醒时间</view>
							<view class="flex-item image_v">{{ pickerValue}}<text
									class="tn-icon-right tn-color-gray"></text></view>
						</view>
					</view>
				</picker>
			</view>

		</view>
		<authpup ref="authpup" type="top" @changeAuth="changeAuth" permissionID="WRITE_CALENDAR"></authpup>
		<view style="float: left;width: 80%;margin-top: 40rpx;margin-left: 10%;">
			<button @click="saveDataOpen()" style="border-radius: 30px;background-color:#5A9CFC ;color:white;font-weight: bolder;">保存</button>
		</view>
	</view>
</template>
<script>
	var _self;
	
	import mytime from '@/common/mytime.js';
	import syscalendar from '@/common/sysCalender.js';
	// const KJAddCalendarEventModule = uni.requireNativePlugin('KJ-AddCalendarEventModule');
	export default {
		data() {
			return {
				remind_time_pre: false,
				remind_time_day: false,
				anyDate: '',
				id: '',
				userId: '',
				date: '',
				type: 0,
				index: 0,
				pickerValue: '',
				event_id:'',
				user: [],
				oneDayTime: 1000 * 60 * 60 * 24, //一天的毫秒数
				currentTime: new Date().getTime(), //当前时间的时间戳（毫秒）
				nextTime: 0,
				platform:0,//0安卓  1 ios
			};
		},
		destroyed(e) {
			// _self.saveData();
		},
		onLoad(options) {
			_self = this
			const now = new Date(); // 获取当前时间
			const hours = now.getHours(); // 获取当前小时数
			const minutes = now.getMinutes()<10?("0"+now.getMinutes()):now.getMinutes(); // 获取当前分钟数
			this.pickerValue = `${hours}:${minutes}`; // 初始化选择器的值为当前时间
			
			//1、日记的提醒  2、心情日记 3、纪念日 4、经期提醒  5、目标  6、备忘录
			_self.type = options.type
			
			
			this.nextTime = this.currentTime + this.oneDayTime * 15;
			// 设置播放器宽高，一般宽度铺满全屏，宽高比是16:9
			console.log(this.currentTime)
			console.log(this.nextTime)
			// console.log(calanderURL)
			this.getplatform();
		},
		onShow() {
			uni.getStorage({
				key: 'user',
				success: function(res) {
					if (res.data) {
						_self.user = res.data
						setTimeout(function() {
							_self.getList()
						}, 200);
					}
				},
				fail: function(e) {
					uni.navigateTo({
						url: '../login/login'
					});
				}
			})

		},
		methods: {
			
			// 获取手机平台
			getplatform() {
				uni.getSystemInfo({
					success: res => {
						if (res.platform === 'android') {
							
							
						}
					}
				})
			},
			
			
			saveEventIos() {
			// 	var title = ""
			// 	var subtitle = ""
			
			// 	if(_self.type == 1){
			// 		subtitle="拾光记-日记提醒"
			// 		title="宝子，今天要写日记了哦"
			// 	}else if(_self.type == 2){
			// 		subtitle="拾光记-心情日记提醒"
			// 		title="宝子，今天要写心情日记了哦"
			// 	}else if(_self.type == 5){
			// 		subtitle="拾光记-目标提醒"
			// 		title="宝子，今天你的目标有进度了吗"
			// 	}else if(_self.type == 6){
			// 		subtitle="拾光记-备忘录提醒"
			// 		title="宝子，今天是否忘记了什么"
			// 	}
				
			// 	var alarms = []
			// 	var currentDate = new Date();
			// 	var parts = _self.pickerValue.split(':');
			// 	var hours = parseInt(parts[0], 10); // 小时
			// 	var minutes = parseInt(parts[1], 10); // 分钟
			// 	currentDate.setHours(hours, minutes, 0, 0);
			// 	var formattedDate = mytime.formatDateTime(currentDate);
			// 	var data = { //提醒
			// 		"dateStr": formattedDate //提醒时间，日期格式yyyy-MM-dd HH:mm:ss
			// 	}
			// 	alarms.push(data)
			
			// 	var startDateStr = mytime.formatDateTime()
			// 	var endDateStr = mytime.getTenYearsLaterDateTime(new Date(), 3)
			
			// 	//请求使用用户的日历数据库
			// 	KJAddCalendarEventModule.requestAccess({
			// 		"entityType": "Event" //Event-事件(日程)，Reminder-提醒事项
			// 	}, (res) => {
			// 		if (res.granted) {
			// 			KJAddCalendarEventModule.saveEvent({
			// 				"eventIdentifier": null, //事件唯一ID，如果不为null，则是编辑当前，为null，则新增
			// 				"title": title,
			// 				"location": "",
			// 				"notes": subtitle,
			// 				"startDateStr": startDateStr, //开始时间，日期格式yyyy-MM-dd HH:mm:ss
			// 				"endDateStr": endDateStr, //结束时间，日期格式yyyy-MM-dd HH:mm:ss
			// 				"allDay": false, //是否全天
			// 				"URLStr": "",
			// 				"alarms": alarms,
			// 				"recurrenceRules": [{ //重复
			// 					"frequency": "Daily", //重复的类型 Daily->按天； Weekly->按周； Monthly->按月； Yearly->按年
			// 					"interval": 1, //间隔
			// 					"daysOfTheWeeks": [],
			// 					"daysOfTheMonths": [], //数组（[+/-] 1 到 31）。负数推断从月底开始计数。例如，-1 表示该月的最后一天。仅对每月重复有效。否则忽略。
			// 					"monthsOfTheYears": [], //数组（1到12）。仅对年度重复有效。否则忽略
			// 					"weeksOfTheYears": [], //数组（[+/1] 1 到 53）。负数推断从年底开始计数。例如，-1 表示一年中的最后一周。仅对年度重复有效。否则忽略。
			// 					"daysOfTheYears": [], //数组（[+/1] 1 到 366）。负数推断从年底开始计数。例如，-1 表示一年的最后一天。仅对年度重复有效。否则忽略。
			// 					"setPositions": [], //数组（[+/1] 1 到 366）。在循环计算结束时用于过滤列表 到指定的位置。负数表示从末尾开始，即 -1 表示取集合的最后结果
			// 					"endDateStr": "", //循环结束时间
			// 				}],
			// 				"structuredLocation": { //位置
			// 					"title": "", //标题
			// 					"latitude": 0, //纬度
			// 					"longitude": 0, //经度
			// 					"radius": 0 //半径
			// 				},
			// 				"span": "ThisEvent", //ThisEvent->仅影响当前事件  FutureEvents->影响这个事件及其后的一切
			// 				"commit": true //false 暂存当前事件 但不提交到系统日历   true 立即提交存入系统日历
			// 			}, (res) => {
			// 				console.log(res.eventIdentifier)
			// 				if(res.eventIdentifier){
			// 					_self.save(res.eventIdentifier)
			// 				}else{
			// 					_self.save("")
			// 				}
			// 			})
			// 		}
			// 	});
			
				
			},

			//设置日历
			setCalendar(){
				// 1.新增日历事件 (日历的日历事件并设定提醒、描述中填入需要跳转的URL、事件的标题)
				//1、日记的提醒  2、心情日记 3、纪念日 4、经期提醒  5、目标  6、备忘录
				var title = ""
				var subtitle = ""
				var description = ""
				var dtstart = ""
				var dtend = ""
				var inAdvance = 1 //提前一分钟提醒
				var rrule = 'FREQ=DAILY;INTERVAL=1'//每天发生一次，直到永远：
				if(_self.type == 1){
					title="拾光记-日记提醒"
					subtitle="宝子，今天要写日记了哦"
					description = ""
				}else if(_self.type == 2){
					title="拾光记-心情日记提醒"
					subtitle="宝子，今天要写心情日记了哦"
					description = ""
				}else if(_self.type == 5){
					title="拾光记-目标提醒"
					subtitle="宝子，今天你的目标有进度了吗"
					description = ""
				}else if(_self.type == 6){
					title="拾光记-备忘录提醒"
					subtitle="宝子，今天是否忘记了什么"
					description = ""
				}
				//开始时间
				// 解析时间字段
				var parts = _self.pickerValue.split(':');
				var hours = parseInt(parts[0], 10); // 小时
				var minutes = parseInt(parts[1], 10); // 分钟

				// 获取当前日期
				var currentDate = new Date();

				// 设置时间为每天的指定小时和分钟
				currentDate.setHours(hours, minutes, 0, 0);

				// 获取时间戳
				 dtstart = currentDate.getTime();
				 dtend = dtstart + 1000 * 60 * 60 * 1;//一个小时后结束

				 syscalendar.addEvent({
					title: title,
					subtitle: subtitle,
					description: description,
					dtstart: dtstart,
					dtend: dtend,
					inAdvance: inAdvance,
					rrule: rrule,
					// duration:'P2W'
				 }).then(result => {
					console.log("event_id:")
					console.log(result); // 处理结果
					
					if(result == -1){
						_self.save("")
					}else{
						_self.save(result)
					}
				 }).catch(error => {
						_self.save("")
				 
				 });
				
			
			
			
			},
			//================================================
			getList() {
				var data = {
					userId: _self.user.id,
					type: _self.type
				}
				this.$api.listWarn(data).then((res) => {
					var resData = res;
					console.log(res)
					if (resData.code == "200") {
						_self.itemList = resData.data;
						if(resData.data.length>0){
							_self.id = resData.data[0].id
							_self.pickerValue = resData.data[0].remark
							_self.remind_time_day = resData.data[0].isWarn==1?true:false
							_self.event_id = resData.data[0].businessId
						}
					} 
				})
				
			},
			saveDataOpen(){
				
				if (uni.getSystemInfoSync().platform == 'ios') {
					this.changeAuth()
				} else if (uni.getSystemInfoSync().platform == 'android') {
					this.$refs['authpup'].open()
				}
				
			},
			changeAuth(){
				this.saveData()
			},
			 saveData() {
				var data = {}
				

				if(this.event_id!='' && this.event_id!=null){
					if (uni.getSystemInfoSync().platform == 'ios') {
						// KJAddCalendarEventModule.requestAccess({
						// 	"entityType": "Event" //Event-事件(日程)，Reminder-提醒事项
						// }, (res) => {
						// 	console.log(JSON.stringify(res))
						// 	if (res.granted) {
						// 		KJAddCalendarEventModule.removeEvent({
						// 			"eventIdentifier": _self.event_id,
						// 			"span": "FutureEvents", //ThisEvent->仅影响当前事件  FutureEvents->影响这个事件及其后的一切
						// 			"commit": true //false 暂存当前事件 但不提交到系统日历   true 立即提交存入系统日历
						// 		}, (res) => {
						// 			console.log(JSON.stringify(res))
						// 		})
						// 	}
						// });
					} else if (uni.getSystemInfoSync().platform == 'android') {
						syscalendar.deleteEvent(this.event_id);//不管有没有，都删除
					}
				}

				
				if(_self.remind_time_day){
					if (uni.getSystemInfoSync().platform == 'ios') {
						_self.save("")
					} else if (uni.getSystemInfoSync().platform == 'android') {
						this.setCalendar()
					}
				}else{
					_self.save("")
				}
			
				
			},
			
			save(event_id){
				var data = {}
				
				if(_self.id == ''){
					data = {
						userId: _self.user.id,
						remark: _self.pickerValue,//时间
						isWarn:_self.remind_time_day==true?1:0,
						businessId:event_id,
						type:_self.type,
					}
				}else{
					
					data = {
						id: _self.id,
						userId: _self.user.id,
						remark: _self.pickerValue,//时间
						isWarn:_self.remind_time_day==true?1:0,
						businessId:event_id,
						type:_self.type,
					}
				}
				console.log("===========================")
				console.log(data)
				this.$api.updateWarn(data).then((res) => {
					var resData = res
					if (resData.code == "200") {
						uni.showToast({
							title: '保存成功',
							duration: 2000,
							icon: 'none'
						})
						
					} else {
						uni.showToast({
							title: '保存失败',
							duration: 2000,
							icon: 'none'
						})
					}
				})
			},



			bindPickerChangeTime: function(e) {
				this.pickerValue = e.detail.value;
			},
			checkThis(index, background) {
				this.checkedIndex = index
				this.backgroundIndex = background
			},
			onDateChange(event) {
				this.date = event.mp.detail.value;
				this.calculateCountdown();
			},

			calculateCountdown() {
				const now = new Date();
				const selected = new Date(this.date);
				const timeDiff = selected.getTime() - now.getTime();
				const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
				this.countdown = `${daysDiff} `;
			},

		}
	};
</script>

<style lang="scss">
	page {
			height: 100%;
			width: 100%;
			margin: 0;
			background-color: $page-bg !important;
		}
		
		.css-theme {
			@include text-color();
			@include base-background();
			@include border-color();
			@include shadow-color();
		}

	.container {
		padding: 20rpx;
		width: 94%;
		float: left;
		margin-left: 3%;
		margin-top: 20rpx;
		// background-color: #ffffff;
		border-radius: 5px;

	}

	.top_box {
		float: left;
		width: 100%;

	}

	.input-container {
		display: flex;
		align-items: center;
		margin-bottom: 20px;
	}

	.label {
		width: 100px;
		font-size: 16px;
	}


	.fixed-image {
		position: fixed;
		right: 20px;
		/* 可根据需要调整位置 */
		bottom: 20px;
		/* 可根据需要调整位置 */
		display: flex;
		align-items: flex-end;
		justify-content: flex-end;
	}

	.fixed-image image {
		width: 80rpx;
		height: 80rpx;
	}


	.container_box {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 20rpx 10rpx;
		/* border: 1px solid #f1f1f1; */
		margin: 16rpx 0rpx;
	}

	.container_box_v {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 20rpx 10rpx;
		margin: 16rpx 0rpx;
	}

	.container_box_v_top {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 20rpx 10rpx;
		margin: 16rpx 0rpx;
		border-radius: 5px;
		color: white
	}

	.container_box_v_top_padding {
		padding: 40rpx;
	}

	.container_box_left {
		display: flex;
		align-items: center;
		float: left;
		width: 100%;
	}

	.container_box_left input {
		width: 100%;
		float: left;
	}

	.container_box_left image {
		width: 20px;
		height: 20px;
	}

	.container_box_left text {
		color: #f1f1f1;
		margin-left: 10rpx;
		margin-right: 10rpx;
	}

	.placeholder_style {
		color: #ccc;
		font-size: 14px;
	}

	.color_style {
		height: 50rpx;
		width: 50rpx;
		border-radius: 50%;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.checkmark {
		width: 24rpx;
		height: 24rpx;
		border-radius: 50%;
		background-color: white;

	}

	.text_max {
		font-size: 16px;

	}

	.text_min {
		font-size: 12px;

		padding-top: 20rpx;
	}

	.right {
		display: flex;
	}

	.button_v {
		margin-left: 10px;
		background-color: none;
		border: none;
		color: white;
		padding: 5rpx 10rpx;

	}

	.button_v_max {
		font-size: 40px;
	}

	.button_v_min {
		padding-top: 28px;
		font-size: 12px;
	}

	.image_v {
		margin-left: auto;
	}

	.textarea-container {
		display: flex;
		flex-direction: column;
	}

	.textarea {
		height: 120px;
		border: 1px solid #f1f1f1;
		border-radius: 4px;
		padding: 10px;
		font-size: 16px;
		width: 100%;
	}
</style>